It is well known in the art to use fuzzy logic control systems based on fuzzy inference in controlling various consumer electronics, household appliances, automobiles, cameras and the like. In the fuzzy logic control systems, in general, if fuzzy conception or fuzzy condition "A" is true, then control "a" is executed. This proposition is represented by a fuzzy rule "if A then a". More specifically, control "a" is executed in a degree determined by how well a fact indicated by input data conforms to fuzzy conception "A". In this fuzzy rule, A is referred to as an "antecedent" and a as a "consequent". The degree of conformity of the fact to fuzzy conception A is called the "grade". It is necessary to calculate such grade with regard to each fuzzy conception. An input label is used for identifying each input fuzzy conception or condition. Accordingly, a fuzzy conception is also referred to as an input label. An output label is also used for identifying each output fuzzy conception or control included in the consequent of a fuzzy rule. Therefore, an output fuzzy conception is referred to as an output label.
In the fuzzy inference system mentioned above, multiple input channels are provided to receive multiple input data values indicating parameters such as velocity, pressure and temperature. Also, multiple input labels are defined in each of the input channels. The system also has multiple output channels to produce multiple output data values such as on/off switch signal and valve control signal. Multiple output labels are also defined in each of the output channels. Therefore, the total number of the input label grades, each of which needs computation, becomes significantly large, being equal to the number of input channels times the number of input labels per input channel. Further, as discussed below, min-max computation on the input label grades is necessary for each of the output labels in order to choose the adequate output labels.
The min-max computation on the input label grades will be explained below with reference to the following illustrative example, which includes 7 fuzzy rules.
______________________________________ Rule a.sub.1 if A and B then a Rule a.sub.2 if B and C then a Rule a.sub.3 if E and F then a Rule a.sub.4 if G and M and N then a Rule b.sub.1 if C and D then b Rule g.sub.1 if H and I then g Rule g.sub.2 if J and K and L then g ______________________________________
The antecedents of these rules include input labels A through N, and the consequents include output labels a through g. It is assumed that grades Ag through Ng of the input labels A through N have the following values.
Ag=0, Bg=0.06, Cg=0.7, Dg=0.55, Eg=0.65, Fg=0, Gg=0.45, Hg=0.9, Ig=0, Jg=0, Kg=0, Lg=0.62, Mg=0.2, Ng=0.
First, instead of an AND operation, a min computation is performed on each rule, which detects the minimum grade among the grades of the input labels for each rule. For example, the antecedent of rule a.sub.1 includes input labels A and B with grades being Ag=0 and Bg=0.06. Therefore, Ag(=0) is selected as the minimum grade since Ag is smaller than Bg. Similarly, rule a.sub.2 selects grade Bg(=0.06) of input label B and rule a.sub.3 selects grade Fg(=0) of input label F. The rule a.sub.4 selects grade Ng(=0).
Then, instead of an OR operation, a max computation is performed for each of the output labels to detect the maximum grade among the previously detected minimum grades of rules which have the same output label as their consequents. For example, regarding rules a.sub.1, a.sub.2, a.sub.3 and a.sub.4 all having the same output label a, grade Bg(=0.06) is selected as the maximum grade among minimum grades Ag, Bg, Fg and Ng. Similar max computations are performed for other output labels b and g, choosing grade Dg(=0.55) for output label b and Ig=Jg=Kg=0 for g respectively.
Prior art fuzzy control systems have been used mainly in low speed control applications such as home appliances. However, when fuzzy control systems are desired to be used in high speed and relatively complicated control applications such as automobile cruise controls or suspension control of vehicles, computing speed should be significantly improved to approximately 1000 times faster than the speed required by a more conventional application. The improvement of the computation speed is achieved by synergistically tuning three computation stages: the grade calculations of input labels, the min-max operations performed on the input label grades to obtain output label grades, and the calculations of center of gravity of output label's membership functions.
Conventional min operations on input label grades have been carried out by comparing each of input label grades with all other input label grades one by one. A typical example of such comparison is a Japanese patent number 4-10133 describing comparison achieved by software program. These comparisons by software, however, have difficulty in improving their computing speed because of a large number of magnitude comparisons. Another typical example of comparison achieved by hardware is Japanese patent number 2-159628. This type of solution also has difficulty in improving its execution speed because of a large number of comparison circuits needed for respective input labels. Additionally, manufacturing cost reduction is also difficult in the second solution cited herein.
In a typical fuzzy inference system comprising input channels including a plurality of input labels, most input label grades are equal to zero. For example, if every membership function crosses only to neighboring functions in each of input channels, then at most two non- zero grades are output from each input channel. Therefore, 70-80% of the input label grades on which the min-max operation is performed are zeros. The zero grade, occupying most of input labels, has peculiarity in a sense that it does not contribute to the results of the min-max operations. However, in prior min-max operations, the zero grades were processed in the same manner as non-zero grades. Thus, many redundant operations were executed resulting in slow operation speed and large hardware size.